/*
    我们在路径传参的过程中通常通过'?'表示要传参了，然后使用key1=value1&key2=value2实现传参。
    比如：http://www.baidu.com?keyword='nodejs'
    可是req.url很明显只能拿到端口号后面的内容，是无法对于传来的参数进行解析的。所以nodejs提供了url模块供我们解析路径中包含的参数.
*/

// 引入http和url模块
const http = require('http')
const url = require('url')


const server = http.createServer((req,res)=>{
    /*
        url.parse()方法可以对于路径进行解析，并且返回一个解析好的对象。返回的对象里包含了好多东西，但是常用的主要有:
            pathname(路径): 从端口号后面到?前面的部分。
            query(参数): 从问号后面到链接结束
            path: 就是req.url
            href: 就是req.url
            host: 域名+端口号
            hostname: 域名
            protocol: 协议
            port: 端口号

        不过要注意url.parse()可以接受第二个参数，参数为布尔值，如果为true则会把所有的参数键值对整理成对象形式放在返回的对象的query属性里。方便我们使用

        url模块也提供了一个url.format()方法，功能和parse正好是反着的(截止2022.9.6已经被官方弃用)
        url模块提供了一个url.resolve()方法用于地址的拼接(截止2022.9.6已被官方弃用)
    */
    let u = url.parse(req.url,true)
    res.writeHead(200,{'Content-Type':'text/html;charset=utf8'})
    res.write(`${JSON.stringify(u)}`)
    res.end()
})

server.listen(9000,()=>{
    console.log('server start');
})